package com.itheima.filter;

import jakarta.servlet.*;
import jakarta.servlet.annotation.WebFilter;

import java.io.IOException;
//@WebFilter("/*")//配置拦截器的拦截路径
public class DemoFilter implements Filter {
    /*
      对象创建的时候调用方法  根据这个方法就能知道 Filter对象什么时候被创建
         web服务器启动时启动
     */
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("filter ~~~呱呱坠地~~");
    }

    /**
     *  专门进行拦截请求的方法  配置好拦截路径  相关路径都会被拦截住 经过这个方法
     * @param servletRequest  请求对象
     * @param servletResponse 响应对象
     * @param filterChain     放行对象
     * @throws IOException
     * @throws ServletException
     */
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("我是Demo过滤器放行前逻辑");
        filterChain.doFilter(servletRequest, servletResponse);//放行语句 将请求和响应放行过去
        System.out.println("我Demo过滤器放行后逻辑");
    }
    /*
      销毁方法,在销毁对象之前执行的  通过这个方法就能知道Filter在什么时候销毁
        web服务器关闭时执行
     */
    @Override
    public void destroy() {
        System.out.println("~~~垂死病中惊坐起~~~");
    }
}
